package iterator;

/**
 * Created by 5406160@qq.com on LiBoWen 李博闻.
 *
 * @ClassName : IteratorDemo
 * @Author : 54061
 * @Date: 2022/2/12 14:07
 */
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
/*
    ConcurrentModificationException:并发修改异常
        此异常只在迭代器中发生,触发的条件: 当使用迭代器对象遍历集合的时候,使用集合对象对原集合进行增删改操作都会出这个异常
        解决方案:
            1. 不修改
            2. 使用列表迭代器(ListIterator)对象进行修改
 */
public class IteratorDemo {
    public static void main(String[] args) {
        //创建集合对象
        Collection<String> list = new ArrayList<>();

        list.add("张三丰");
        list.add("张翠山");
        list.add("张无忌");

        System.out.println("list = " + list);//概览
        //获取迭代器对象
        Iterator<String> it = list.iterator();//产生镜像

        list.add("殷素素");//集合修改元素
        //循环包裹
        while(it.hasNext()){
            //能进来说明有下一个元素,有就取出来
            String name = it.next();
            System.out.println("name = " + name);


        }
        System.out.println("list = " + list);
    }
}
